module(
    name = "rules_python",
    version = "0.24.0",
    compatibility_level = 1,
)

bazel_dep(name = "platforms", version = "0.0.4")
bazel_dep(name = "bazel_skylib", version = "1.3.0")

# Those are loaded only when using py_proto_library
bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
bazel_dep(name = "protobuf", version = "21.7", repo_name = "com_google_protobuf")

internal_deps = use_extension("@rules_python//python/extensions/private:internal_deps.bzl", "internal_deps")
internal_deps.install()
use_repo(
    internal_deps,
    "pypi__build",
    "pypi__click",
    "pypi__colorama",
    "pypi__importlib_metadata",
    "pypi__installer",
    "pypi__more_itertools",
    "pypi__packaging",
    "pypi__pep517",
    "pypi__pip",
    "pypi__pip_tools",
    "pypi__setuptools",
    "pypi__tomli",
    "pypi__wheel",
    "pypi__zipp",
)

# We need to do another use_extension call to expose the "pythons_hub"
# repo.
python = use_extension("@rules_python//python/extensions:python.bzl", "python")

# The default toolchain to use if nobody configures a toolchain.
# NOTE: This is not a stable version. It is provided for convenience, but will
# change frequently to track the most recent Python version.
# NOTE: The root module can override this.
python.toolchain(
    is_default = True,
    python_version = "3.11",
)
use_repo(python, "pythons_hub")

# This call registers the Python toolchains.
register_toolchains("@pythons_hub//:all")
